Index: contrib/tar/src/common.h
===================================================================
RCS file: /home/ncvs/src/contrib/tar/src/Attic/common.h,v
retrieving revision 1.2
diff -u -d -r1.2 common.h
--- contrib/tar/src/common.h	4 Jun 2002 17:31:15 -0000	1.2
+++ contrib/tar/src/common.h	2 Dec 2006 14:47:16 -0000
@@ -124,6 +124,9 @@
 /* Boolean value.  */
 GLOBAL int absolute_names_option;
 
+/* Allow GNUTYPE_NAMES type? */
+GLOBAL bool allow_name_mangling_option;
+
 /* This variable tells how to interpret newer_mtime_option, below.  If zero,
    files get archived if their mtime is not less than newer_mtime_option.
    If nonzero, files get archived if *either* their ctime or mtime is not less
Index: contrib/tar/src/extract.c
===================================================================
RCS file: /home/ncvs/src/contrib/tar/src/Attic/extract.c,v
retrieving revision 1.6
diff -u -d -r1.6 extract.c
--- contrib/tar/src/extract.c	19 Oct 2002 09:32:03 -0000	1.6
+++ contrib/tar/src/extract.c	2 Dec 2006 14:39:30 -0000
@@ -1219,7 +1219,13 @@
       break;
 
     case GNUTYPE_NAMES:
-      extract_mangle ();
+      if (allow_name_mangling_option)
+	extract_mangle ();
+      else {
+	ERROR ((0, 0, _("GNUTYPE_NAMES mangling ignored")));
+	if (backup_option)
+	  undo_last_backup ();
+      }
       break;
 
     case GNUTYPE_MULTIVOL:
Index: contrib/tar/src/tar.c
===================================================================
RCS file: /home/ncvs/src/contrib/tar/src/Attic/tar.c,v
retrieving revision 1.3
diff -u -d -r1.3 tar.c
--- contrib/tar/src/tar.c	24 Jul 2003 00:04:01 -0000	1.3
+++ contrib/tar/src/tar.c	2 Dec 2006 14:29:15 -0000
@@ -129,6 +129,7 @@
 enum
 {
   ANCHORED_OPTION = CHAR_MAX + 1,
+  ALLOW_NAME_MANGLING_OPTION,
   BACKUP_OPTION,
   DELETE_OPTION,
   EXCLUDE_OPTION,
@@ -178,6 +179,7 @@
   {"absolute-names", no_argument, 0, 'P'},
   {"absolute-paths", no_argument, 0, OBSOLETE_ABSOLUTE_NAMES},
   {"after-date", required_argument, 0, 'N'},
+  {"allow-name-mangling", no_argument, 0, ALLOW_NAME_MANGLING_OPTION},
   {"anchored", no_argument, 0, ANCHORED_OPTION},
   {"append", no_argument, 0, 'r'},
   {"atime-preserve", no_argument, &atime_preserve_option, 1},
@@ -392,6 +394,8 @@
               PATTERN                at list/extract time, a globbing PATTERN\n\
   -o, --old-archive, --portability   write a V7 format archive\n\
       --posix                        write a POSIX format archive\n\
+      --allow-name-mangling          allow GNUTYPE_NAMES mangling --\n\
+                                     considered dangerous\n\
   -j, -y, --bzip, --bzip2, --bunzip2 filter the archive through bzip2\n\
   -z, --gzip, --ungzip               filter the archive through gzip\n\
   -Z, --compress, --uncompress       filter the archive through compress\n\
@@ -901,6 +905,10 @@
 	set_use_compress_program_option ("compress");
 	break;
 
+      case ALLOW_NAME_MANGLING_OPTION:
+	allow_name_mangling_option = true;
+	break;
+
       case OBSOLETE_VERSION_CONTROL:
 	WARN ((0, 0, _("Obsolete option name replaced by --backup")));
 	/* Fall through.  */
